$(function(){
	$('.multi-input').each(function(){
		MultiInputs($(this));
	});
});

function MultiInputs(container) {
	container.children('.item').each(function(){
		$('<input type="button" class="add" value="+">')
			.appendTo(this)
			.click(function(){
				addElement();
			});
		$('<input type="button" class="remove" value="-">')
			.appendTo(this)
			.click(function(){
				removeElement($(this).parent());
			});
	});
	
	this.addElement = function() {
		var c = container.children('.item').eq(0).clone();
		c.find('input[type=text],input[type=hidden]').val('');
		container.prepend(c);
		rebuildItems();
	};
	this.removeElement = function(item) {
		item.remove();
		rebuildItems();
	};
	
	this.rebuildItems = function() {
		container.children('.item').each(function(index){
			$(this).find('input[name]').each(function(){
				this.name = this.name.replace(/\[\d+\]/, "["+index+"]");
			});
		});
	};
}